/**
 * 批改相关API
 * 处理作文批改和批改历史查询
 */

import { post, get } from './api.js';

/**
 * 提交作文进行批改
 * @param {string} essayId - 作文ID
 * @returns {Promise<Object>} 批改结果 { success, data: { essay }, message }
 */
export const submitForCorrection = async (essayId) => {
  try {
    const response = await post(`/corrections/${essayId}`);
    return response;
  } catch (error) {
    throw {
      success: false,
      message: error.message || '提交批改失败',
      type: error.type || 'SUBMIT_CORRECTION_ERROR',
    };
  }
};

/**
 * 获取批改结果
 * @param {string} essayId - 作文ID
 * @returns {Promise<Object>} 批改结果 { success, data: { essay }, message }
 */
export const getCorrectionResult = async (essayId) => {
  try {
    const response = await get(`/corrections/${essayId}`);
    return response;
  } catch (error) {
    throw {
      success: false,
      message: error.message || '获取批改结果失败',
      type: error.type || 'GET_CORRECTION_ERROR',
    };
  }
};

/**
 * 获取批改历史列表
 * @param {Object} filters - 过滤条件
 * @param {number} [filters.limit=10] - 每页数量（1-100）
 * @param {number} [filters.offset=0] - 偏移量（>=0）
 * @param {string} [filters.gradeLevel] - 学段过滤（primary/middle/high）
 * @param {string} [filters.startDate] - 起始日期（ISO 8601格式）
 * @param {string} [filters.endDate] - 结束日期（ISO 8601格式）
 * @returns {Promise<Object>} 批改历史 { success, data: { corrections, pagination }, message }
 */
export const getHistory = async (filters = {}) => {
  try {
    const response = await get('/corrections', filters);
    return response;
  } catch (error) {
    throw {
      success: false,
      message: error.message || '获取批改历史失败',
      type: error.type || 'GET_HISTORY_ERROR',
    };
  }
};

// 导出所有API方法
export default {
  submitForCorrection,
  getCorrectionResult,
  getHistory,
};

